package com.brsya.movie.contract;


import com.brsya.base.base.BaseView;
import com.brsya.base.bean.BaseListBean;
import com.brsya.base.bean.BaseObjectBean;
import com.brsya.base.bean.MovieBean;
import com.brsya.base.bean.PlayListBean;

import java.util.List;
import java.util.Map;

import io.reactivex.rxjava3.core.Observable;

/**
 * Created by Brsya
 * CreateDate: 2022/5/28  11:20
 * Description:
 * 播放页面
 */
public interface PlayContract {
    interface Model {
        /**
         * 根据Id搜索电影
         */
        Observable<BaseObjectBean<PlayListBean>> getHot(Map<String, Object> par);

        /**
         * 获取播放地址
         */
        Observable<BaseObjectBean<String>> getPlayAddress(Map<String, Object> par);

        /**
         * 获取今日推荐
         */
        Observable<BaseListBean<MovieBean>> getLike(Map<String, Object> par);
    }


    interface View extends BaseView {

        /**
         * 去详情页
         */
        void goDetail();

        /**
         * 显示Id对应播放
         */
        void playListSuccess(PlayListBean playListBean);

        /**
         * 播放地址获取成功
         *
         * @param playUrl 正确的播放地址
         */
        void getPlayAddress(String playUrl);

        /**
         * 获取播放地址失败
         */
        void getPlayAddressError();

        /**
         * 显示今日推荐
         */
        void showDayHot(List<MovieBean> categoryBeans);
        /**
         * 列表没有更多数据
         */
        void showNoMore();
    }


    interface Presenter {
        /**
         * 根据Id搜索电影
         */
        void getHot(int id);

        /**
         * 获取播放列表
         *
         * @param infoUrl playerType为10 的播放地址
         */
        void getPlayAddress(String infoUrl);

        /**
         * 获取今日推荐
         *
         * @param id 数据的 id
         * @param tag 标签字符串
         */
        void getLike(int id, String tag);


        void getPlayAddressNew(String infoUrl, String type, Map<String, String> par);


        void getPlayAddressNew(String infoUrl, String type, String url);
    }


}
